<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=no">
  <meta name="description" content="API docs for the openRecorder method from the FlutterSoundRecorder class, for the Dart programming language.">
  <title>openRecorder method - FlutterSoundRecorder class - flutter_sound_recorder library - Dart API</title>


  
  <link rel="preconnect" href="https://fonts.gstatic.com">
  <link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,300;0,400;0,500;0,700;1,400&display=swap" rel="stylesheet">
  <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0" rel="stylesheet">
  
  <link rel="stylesheet" href="../../static-assets/github.css?v1">
  <link rel="stylesheet" href="../../static-assets/styles.css?v1">
  <link rel="icon" href="../../static-assets/favicon.png?v1">
  
</head>

<body data-base-href="../../" data-using-base-href="false" class="light-theme">
<div id="overlay-under-drawer"></div>
<header id="title">
  <span id="sidenav-left-toggle" class="material-symbols-outlined" role="button" tabindex="0">menu</span>
  <ol class="breadcrumbs gt-separated dark hidden-xs">
    <li><a href="../../index.html">flutter_sound</a></li>
    <li><a href="../../public_flutter_sound_recorder">public&#47;flutter_sound_recorder.dart</a></li>
    <li><a href="../../public_flutter_sound_recorder/FlutterSoundRecorder-class.html">FlutterSoundRecorder</a></li>
    <li class="self-crumb">openRecorder method</li>
  </ol>
  <div class="self-name">openRecorder</div>
  <form class="search navbar-right" role="search">
    <input type="text" id="search-box" autocomplete="off" disabled class="form-control typeahead" placeholder="Loading search...">
  </form>
  <div class="toggle" id="theme-button" title="Toggle brightness">
    <label for="theme">
      <input type="checkbox" id="theme" value="light-theme">
      <span id="dark-theme-button" class="material-symbols-outlined">
        dark_mode
      </span>
      <span id="light-theme-button" class="material-symbols-outlined">
        light_mode
      </span>
    </label>
  </div>
</header>
<main>
<div
    id="dartdoc-main-content"
    class="main-content"
    data-above-sidebar="public_flutter_sound_recorder&#47;FlutterSoundRecorder-class-sidebar.html"
    data-below-sidebar="">
    <div>
<h1><span class="kind-method">openRecorder</span> method 
</h1></div>

    <section class="multi-line-signature">
      
<span class="returntype"><a href="https://api.flutter.dev/flutter/dart-core/Future-class.html">Future</a><span class="signature">&lt;<wbr><span class="type-parameter"><a href="../../public_flutter_sound_recorder/FlutterSoundRecorder-class.html">FlutterSoundRecorder</a>?</span>&gt;</span></span>
<span class="name ">openRecorder</span>(<wbr>{<ol class="parameter-list"> <li><span class="parameter" id="openRecorder-param-isBGService"><span class="type-annotation">dynamic</span> <span class="parameter-name">isBGService</span> = <span class="default-value">false</span>, </span></li>
</ol>})

      

    </section>
    
<section class="desc markdown">
  <p>Open a Recorder</p>
<hr>
<p>A recorder must be opened before used.
Opening a recorder takes resources inside the system. Those resources are freed with the verb <code>closeRecorder()</code>.</p>
<p>Overload your widget's <code>dispose()</code> method to close the recorder when your widget is disposed.
In this way you will reset the Recorder and clean up the device resources, and the recorder will be no longer usable.</p>
<pre class="language-dart"><code class="language-dart">@override
void dispose()
{
        if (myRecorder != null)
        {
            myRecorder.closeRecorder();
            myRecorder = null;
        }
        super.dispose();
}
</code></pre>
<h2 id="parameters">Parameters</h2>
<ul>
<li>FIXME : document <code>isBGService</code> parameter</li>
</ul>
<h2 id="return">Return</h2>
<p><a href="../../public_flutter_sound_recorder/FlutterSoundRecorder/openRecorder.html">openRecorder()</a> returns Futures.
You do not need to wait the end of the initialization before <a href="../../public_flutter_sound_recorder/FlutterSoundRecorder/startRecorder.html">startRecorder()</a>.
It will automatically wait the end of <code>openRecorder()</code> before starting the recorder.</p>
<h2 id="example">Example:</h2>
<pre class="language-dart"><code class="language-dart">    myRecorder = await FlutterSoundRecorder().openRecorder();

    ...
    (do something with myRecorder)
    ...

    myRecorder.closeRecorder();
    myRecorder = null;
</code></pre>
<h2 id="see-also">See also</h2>
<ul>
<li>closeRecorder()</li>
</ul>
<hr>
</section>


    
<section class="summary source-code" id="source">
  <h2><span>Implementation</span></h2>
  <pre class="language-dart"><code class="language-dart">Future&lt;FlutterSoundRecorder?&gt; openRecorder({isBGService = false}) async {
  if (_isInited != Initialized.notInitialized) {
    return this;
  }

  if (isBGService) {
    await MethodChannel(
      &quot;xyz.canardoux.flutter_sound_bgservice&quot;,
    ).invokeMethod(&quot;setBGService&quot;);
  }

  Future&lt;FlutterSoundRecorder?&gt;? r;
  _logger.d(&#39;FS:---&gt; openRecorder &#39;);
  await _lock.synchronized(() async {
    r = _openAudioSession();
  });
  _logger.d(&#39;FS:&lt;--- openAudioSession &#39;);
  return r;
}</code></pre>
</section>


  </div> <!-- /.main-content -->
  <div id="dartdoc-sidebar-left" class="sidebar sidebar-offcanvas-left">
    <!-- The search input and breadcrumbs below are only responsively visible at low resolutions. -->
<header id="header-search-sidebar" class="hidden-l">
  <form class="search-sidebar" role="search">
    <input type="text" id="search-sidebar" autocomplete="off" disabled class="form-control typeahead" placeholder="Loading search...">
  </form>
</header>
<ol class="breadcrumbs gt-separated dark hidden-l" id="sidebar-nav">
    <li><a href="../../index.html">flutter_sound</a></li>
    <li><a href="../../public_flutter_sound_recorder">flutter_sound_recorder</a></li>
    <li><a href="../../public_flutter_sound_recorder/FlutterSoundRecorder-class.html">FlutterSoundRecorder</a></li>
    <li class="self-crumb">openRecorder method</li>
</ol>

    <h5>FlutterSoundRecorder class</h5>
    <div id="dartdoc-sidebar-left-content"></div>
  </div><!--/.sidebar-offcanvas-->
  <div id="dartdoc-sidebar-right" class="sidebar sidebar-offcanvas-right">
</div><!--/.sidebar-offcanvas-->
</main>
<footer>
  <span class="no-break">
    flutter_sound
      9.28.0
  </span>
  
</footer>


<script src="../../static-assets/highlight.pack.js?v1"></script>
<script src="../../static-assets/docs.dart.js"></script>

</body>
</html>

